home *** CD-ROM | disk | FTP | other *** search
- // Dave's RandomIntPicker.
- //
- // After several ints have been inserted by [obj insert:n], one unifomrly
- // randomly choice can be made by looking at [obj choice]. Any number of
- // calls to [obj choice] will return the same value, and should not
- // be followed by any more [obj insert:n] without first calling
- // [obj reset], which readies the object for a new bunch of choices.
-
- #import <libc.h>
- #import "RandomIntPicker.h"
-
- @implementation RandomIntPicker
-
- - init
- {
- [self reset];
- return self;
- }
-
- - reset
- {
- count=0;
- pickedInt=0;
- return self;
- }
-
- - (int) choice
- {
- return pickedInt;
- }
-
- - (int) count
- {
- return count;
- }
-
- - insert: (int)newInt;
- {
- count++;
- if (!(random()%count)) pickedInt=newInt;
- return self;
- }
-
- @end
-
-